package com.hxzy.shop.order.dto.resp;

import com.hxzy.shop.order.config.CustomerDoubleSerialize;
import com.hxzy.shop.order.dto.req.PayTransactionsDrugV3Req;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.codehaus.jackson.map.annotate.JsonSerialize;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * @ClassName PlaceOrderRespV2
 * @Author wengjt
 * @Date 2021/9/14 10:29
 * @Description
 **/
@Data
@ApiModel
public class PlaceOrderRespV2 implements Serializable {


    @JsonSerialize(using = CustomerDoubleSerialize.class)
    @ApiModelProperty(value = "总金额")
    private BigDecimal totalPrice;


    @JsonSerialize(using = CustomerDoubleSerialize.class)
    @ApiModelProperty(value = "运费")
    private BigDecimal freightPrice;


    @JsonSerialize(using = CustomerDoubleSerialize.class)
    @ApiModelProperty("限时秒杀优惠")
    private BigDecimal spike;


    @JsonSerialize(using = CustomerDoubleSerialize.class)
    @ApiModelProperty("今日特价优惠")
    private BigDecimal specialOffer;


    @JsonSerialize(using = CustomerDoubleSerialize.class)
    @ApiModelProperty("组合套餐优惠")
    private BigDecimal combination;


    @JsonSerialize(using = CustomerDoubleSerialize.class)
    @ApiModelProperty("满减优惠")
    private BigDecimal fullReduction;


    @JsonSerialize(using = CustomerDoubleSerialize.class)
    @ApiModelProperty("第X件X折优惠")
    private BigDecimal fullDiscount;


    @JsonSerialize(using = CustomerDoubleSerialize.class)
    @ApiModelProperty("砍价优惠")
    private BigDecimal haggleDiscount;


    @JsonSerialize(using = CustomerDoubleSerialize.class)
    @ApiModelProperty("会员优惠")
    private BigDecimal memberDiscount;


    @JsonSerialize(using = CustomerDoubleSerialize.class)
    @ApiModelProperty("拼团优惠")
    private BigDecimal groupBookingDiscount;


    @JsonSerialize(using = CustomerDoubleSerialize.class)
    @ApiModelProperty(value = "活动优惠金额")
    private BigDecimal activityDiscountPrice;


    @JsonSerialize(using = CustomerDoubleSerialize.class)
    @ApiModelProperty(value = "优惠金额")
    private BigDecimal discountPrice;


    @JsonSerialize(using = CustomerDoubleSerialize.class)
    @ApiModelProperty(value = "优惠后商品总金额")
    private BigDecimal amountAfterDiscount;


    @JsonSerialize(using = CustomerDoubleSerialize.class)
    @ApiModelProperty(value = "小计(优惠后商品金额+运费)")
    private BigDecimal subtotal;


    @JsonSerialize(using = CustomerDoubleSerialize.class)
    @ApiModelProperty("购物卡抵扣金额")
    private BigDecimal discountCardPrice;

    @JsonSerialize(using = CustomerDoubleSerialize.class)
    @ApiModelProperty(value = "实际支付金额")
    private BigDecimal payPrice;


    /**
     * 门店id
     */
    @ApiModelProperty(value = "门店id")
    private Long storeId;

    /**
     * 门店名称
     */
    @ApiModelProperty(value = "门店名称")
    private String storeName;


    /**
     * 会员关联优惠券id
     */
    @ApiModelProperty(value = "会员管理优惠券id")
    private Long memberInnerCouponId;

    /**
     * 下单人id
     */
    @ApiModelProperty(value = "下单人id")
    private Long payMemberId;


    /**
     * 收货地址id
     */
    @ApiModelProperty(value = "收货地址id")
    private Long userReceiverId;

    @ApiModelProperty(value = "配送类型 1 自提 2 同城 3快递")
    private Integer packType;
    /**
     * 药品属性  1普通订单  2处方订单
     */
    @ApiModelProperty(value = "药品属性   1普通订单  2处方订单")
    private Integer orderType;

    @ApiModelProperty("是否是分销订单")
    private Boolean distribute;

    @ApiModelProperty("是否包含分销自购")
    private Boolean distributeSelf;

    /**
     * 药品信息
     */
    @ApiModelProperty(value = "药品信息")
    private List<PayTransactionsDrugV3Req> payTransactionsDrugReq;


    @ApiModelProperty("详情的药品列表")
    private List<PlaceOrderDrugV2Resp> drugList;


    @ApiModelProperty("是否包含处方药 0->不包含 1->包含 ")
    private Integer prescription;

    @ApiModelProperty("分销人id")
    private Long distributorId;

    @JsonSerialize(using = CustomerDoubleSerialize.class)
    @ApiModelProperty("利润")
    private BigDecimal profit;

    /**
     * 手机号
     */
    @ApiModelProperty(value = "手机号,订单自提状态下必填")
    private String phone;

    /**
     * 购物卡id
     */
    @ApiModelProperty(value = "卡片id")
    private Long discountCardDetailsId;


    @ApiModelProperty("额外订单信息")
    private PlaceOrderExtraV2Resp extra;

    /**
     * 拼团id
     */
    @ApiModelProperty("拼团id")
    private Long groupBookingId;

    /**
     * 团长id
     */
    @ApiModelProperty("团长id")
    private Long sponsorId;

    /**
     * 积分商品id
     */
    @ApiModelProperty("积分商品id")
    private Long pointRewardId;

    /**
     * 积分
     */
    private Integer point;

    /**
     * 兑换方式(1积分兑换 2积分+全额兑换)
     */
    private Integer waysConvert;

    /**
     * 处方审核方式 1 免费开方  2上传开方图片
     */
    @ApiModelProperty("处方审核方式 1 免费开方  2上传开方图片")
    private Integer prescriptionReviewSettings;

    /***
     * 图片链接
     * **/
    @ApiModelProperty("图片链接")
    private String prescriptionUrl;

    /**
     * 是否采用京东物流
     */
    @ApiModelProperty("是否采用京东物流")
    private Boolean isJdExpress;

    @ApiModelProperty("是否包含疫情药 false不包含 true包含 ")
    private Boolean epidemicDrug = false;

    /**
     * 是否代客下单
     */
    @ApiModelProperty("是否代客下单")
    private Boolean isCustomersOrder;


}
